<#import "template.ftl" as layout>
<@layout.registrationLayout displayMessage=!messagesPerField.existsError('username','password') displayInfo=realm.password && realm.registrationAllowed && !registrationDisabled??; section>
    <#if section = "header">
        ${msg("loginAccountTitle")}
    <#elseif section = "form">
        <div id="kc-form">
          <div id="kc-form-wrapper">
            <#if realm.password>
                <form id="kc-form-login" onsubmit="login.disabled = true; return true;" action="${url.loginAction}" method="post">
                    <input type="radio" name="phoneActivated" value="${phoneActivated!0}">账户密码登录
                    <input type="radio" name="phoneActivated" value="${phoneActivated!1}">手机验证码登录
                    <div id="userNamePassword">
                        <#if !usernameHidden??>
                            <div class="${properties.kcFormGroupClass!}">
                                <label for="username" class="${properties.kcLabelClass!}"><#if !realm.loginWithEmailAllowed>${msg("username")}<#elseif !realm.registrationEmailAsUsername>${msg("usernameOrEmail")}<#else>${msg("email")}</#if></label>

                                <input tabindex="1" id="username" class="${properties.kcInputClass!}" name="username" value="${(login.username!'')}"  type="text" autofocus autocomplete="off"
                                       aria-invalid="<#if messagesPerField.existsError('username','password')>true</#if>"
                                />

                                <#if messagesPerField.existsError('username','password')>
                                    <span id="input-error" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
                                        ${kcSanitize(messagesPerField.getFirstError('username','password'))?no_esc}
                                </span>
                                </#if>
                            </div>
                        </#if>

                        <div class="${properties.kcFormGroupClass!}">
                            <label for="password" class="${properties.kcLabelClass!}">${msg("password")}</label>

                            <div class="${properties.kcInputGroup!}">
                                <input tabindex="2" id="password" class="${properties.kcInputClass!}" name="password" type="password" autocomplete="off"
                                       aria-invalid="<#if messagesPerField.existsError('username','password')>true</#if>"
                                />
                                <button class="pf-c-button pf-m-control" type="button" aria-label="${msg("showPassword")}"
                                        aria-controls="password"  data-password-toggle
                                        data-label-show="${msg('showPassword')}" data-label-hide="${msg('hidePassword')}">
                                    <i class="fa fa-eye" aria-hidden="true"></i>
                                </button>
                            </div>

                            <#if usernameHidden?? && messagesPerField.existsError('username','password')>
                                <span id="input-error" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
                                    ${kcSanitize(messagesPerField.getFirstError('username','password'))?no_esc}
                            </span>
                            </#if>
                        </div>

                        <div class="${properties.kcFormGroupClass!} ${properties.kcFormSettingClass!}">
                            <div id="kc-form-options">
                                <#if realm.rememberMe && !usernameHidden??>
                                    <div class="checkbox">
                                        <label>
                                            <#if login.rememberMe??>
                                                <input tabindex="3" id="rememberMe" name="rememberMe" type="checkbox" checked> ${msg("rememberMe")}
                                            <#else>
                                                <input tabindex="3" id="rememberMe" name="rememberMe" type="checkbox"> ${msg("rememberMe")}
                                            </#if>
                                        </label>
                                    </div>
                                </#if>
                            </div>
                            <div class="${properties.kcFormOptionsWrapperClass!}">
                                <#if realm.resetPasswordAllowed>
                                    <span><a tabindex="5" href="${url.loginResetCredentialsUrl}">${msg("doForgotPassword")}</a></span>
                                </#if>
                            </div>
                        </div>
                    </div>

                    <div id="phoneSms" style="display: none">
                        <div class="${properties.kcFormGroupClass!}">
                            <label for="phoneNumber" class="${properties.kcLabelClass!}">${msg("phoneNumber")}</label>

                            <input tabindex="6" id="phoneNumber" class="${properties.kcInputClass!}" name="phoneNumber" value="${(login.phoneNumber!'')}"  type="text" autofocus autocomplete="off" />

                            <#if messagesPerField.existsError('phoneNumber','validateCode')>
                                <span id="input-error" class="${properties.kcInputErrorMessageClass!}" aria-live="polite">
                                        ${kcSanitize(messagesPerField.getFirstError('phoneNumber','validateCode'))?no_esc}
                                </span>
                            </#if>
                        </div>

                        <div class="${properties.kcFormGroupClass!}">
                            <label for="validateCode" class="${properties.kcLabelClass!}">${msg("validateCode")}</label>

                            <div class="${properties.kcInputGroup!}">
                                <input tabindex="7" id="validateCode" class="${properties.kcInputClass!}" name="validateCode" type="text" autocomplete="off"
                                       aria-invalid="<#if messagesPerField.existsError('phoneNumber','validateCode')>true</#if>"
                                />
                                <button class="pf-c-button pf-m-control" type="button" id="sendCode">
                                    发送验证码
                                </button>
                            </div>
                        </div>
                    </div>

                      <div id="kc-form-buttons" class="${properties.kcFormGroupClass!}">
                          <input type="hidden" id="id-hidden-input" name="credentialId" <#if auth.selectedCredential?has_content>value="${auth.selectedCredential}"</#if>/>
                          <input tabindex="4" class="${properties.kcButtonClass!} ${properties.kcButtonPrimaryClass!} ${properties.kcButtonBlockClass!} ${properties.kcButtonLargeClass!}" name="login" id="kc-login" type="submit" value="登录"/>
                      </div>
                    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
                    <script type="text/javascript">
                        $(function () {

                            showHideForm();

                            if (!$("input[name=phoneActivated]:checked").val()) {
                                $("input[name=phoneActivated]").eq(0).click();
                            }

                            $("input[name=phoneActivated]").on("change", function () {
                                showHideForm();
                            });

                            function showHideForm() {
                                if ($("input[name=phoneActivated]:checked").val() == 1) {
                                    $("#userNamePassword").hide();
                                    $("#phoneSms").show();
                                } else {
                                    $("#userNamePassword").show();
                                    $("#phoneSms").hide();
                                }
                            }

                            $("#sendCode").on("click", function () {
                                var phone = $("#phoneNumber").val();
                                if (!phone) {
                                    alert("手机不能为空");
                                    return;
                                }
                                $.ajax({
                                    url: window.location.origin + "/realms/${realm.name}/sms-rest/sendLoginSmsCode?phoneNumber=" + phone,
                                    contentType: "application/json",
                                    type: "GET",
                                    success: function (data) {
                                        console.log(data.code);
                                        if (data.code === 1) {
                                            alert(data.msg);
                                        }
                                    }, error: function (data) {
                                        console.log(data);
                                        alert("验证码发送失败");
                                    }
                                })
                            })
                        })
                    </script>




                </form>
            </#if>
            </div>
        </div>
        <script type="module" src="${url.resourcesPath}/js/passwordVisibility.js"></script>
    <#elseif section = "info" >
        <#if realm.password && realm.registrationAllowed && !registrationDisabled??>
            <div id="kc-registration-container">
                <div id="kc-registration">
                    <span>${msg("noAccount")} <a tabindex="6"
                                                 href="${url.registrationUrl}">${msg("doRegister")}</a></span>
                </div>
            </div>
        </#if>
    <#elseif section = "socialProviders" >
        <#if realm.password && social.providers??>
            <div id="kc-social-providers" class="${properties.kcFormSocialAccountSectionClass!}">
                <hr/>
                <h4>${msg("identity-provider-login-label")}</h4>

                <ul class="${properties.kcFormSocialAccountListClass!} <#if social.providers?size gt 3>${properties.kcFormSocialAccountListGridClass!}</#if>">
                    <#list social.providers as p>
                        <li>
                            <a id="social-${p.alias}" class="${properties.kcFormSocialAccountListButtonClass!} <#if social.providers?size gt 3>${properties.kcFormSocialAccountGridItem!}</#if>"
                                    type="button" href="${p.loginUrl}">
                                <#if p.iconClasses?has_content>
                                    <i class="${properties.kcCommonLogoIdP!} ${p.iconClasses!}" aria-hidden="true"></i>
                                    <span class="${properties.kcFormSocialAccountNameClass!} kc-social-icon-text">${p.displayName!}</span>
                                <#else>
                                    <span class="${properties.kcFormSocialAccountNameClass!}">${p.displayName!}</span>
                                </#if>
                            </a>
                        </li>
                    </#list>
                </ul>
            </div>
        </#if>
    </#if>

</@layout.registrationLayout>
